package team.kas.anime.util;

import org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;


public class UpUtils {

	public static void upfile(MultipartFile file, HttpServletRequest request, String type) {

		//获取文件的名称
		String orgName = file.getOriginalFilename();
		String fileType = orgName.substring(orgName.lastIndexOf(".")+1);
		String realPath = "";
		String basePath = "";
		if(fileType.equalsIgnoreCase("mp4")){
			//服务器存放视频的路径 target包存放的
			realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/video/adminVideo/");
			System.out.println(realPath);
			//本地存放视频的路径
			basePath="D:\\IDEA\\CBBS\\Anime\\src\\main\\webapp\\WEB-INF\\video\\adminVideo\\";
		}else {
			if(type.equals("video")){
				//服务器存放视频的路径 target包存放的
				realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/img/videoImg/");
				System.out.println(realPath);
				//本地存放视频的路径
				basePath="D:\\IDEA\\CBBS\\Anime\\src\\main\\webapp\\WEB-INF\\img\\videoImg\\";
			}else {
				//服务器存放视频的路径 target包存放的
				realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/img/userImg/");
				System.out.println(realPath);
				//本地存放视频的路径
				basePath="D:\\IDEA\\CBBS\\Anime\\src\\main\\webapp\\WEB-INF\\img\\userImg\\";
			}
		}

		File file1 = new File(realPath); //创建一个文件对象

		//判断文件存在？ 存在不做操作 不存在 创建
		if (!file1.exists()) {
			file1.mkdirs();
		}
		File file2 = new File(basePath);
		if(!file2.exists()) {
             file2.mkdirs();
		}
		//文件的IO流操作
		try {
			//文件输出流  服务器保存地址+视频名（在服务器地址下 创建一个 通视频名一样的空文件）  append 追加 不会进行文件覆盖
			FileOutputStream fos = new FileOutputStream(realPath+orgName,true);
			FileOutputStream fos1 = new FileOutputStream(basePath+orgName,true);
			//写入  将文件转为二进制
			fos.write(file.getBytes());
			fos1.write(file.getBytes());
			//刷新缓冲
			fos1.flush();
			fos.flush();
			//关闭文件资源
			fos1.close();
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

		}
	}

	public static void upfile1(MultipartFile file, HttpServletRequest request) {
		//服务器路径
		String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/video/");
		System.out.println(realPath);
		//本地路径，项目运行后删除
		//String basePath="E:\\WorkJava\\Bilibili\\CBBS\\Anime\\src\\main\\webapp\\WEB-INF\\video\\";
		//创建文件对象
		File file1 = new File(realPath);
		//判断文件是否存在，如果不存在创建
		if (!file1.exists()) {
			file1.mkdirs();
		}
		//File file2 = new File(basePath);
//		if(!file2.exists()) {
//			file2.mkdirs();
//		}
		//获取视频文件名称
		String orgName = file.getOriginalFilename();
		//文件io流操作
		try {
			//文件输出流，写入服务器,true:追加写入
			FileOutputStream fos = new FileOutputStream(realPath+orgName,true);
			//写入本地
			//FileOutputStream fos1 = new FileOutputStream(basePath+orgName,true);
			//将文件转换为二进制写入
			fos.write(file.getBytes());
			//fos1.write(file.getBytes());
			//刷新缓冲
			//fos1.flush();
			fos.flush();
			//关闭资源
			//fos1.close();
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

		}
	}
	public static void upImgFile(MultipartFile file, HttpServletRequest request) {
		//服务器路径
		String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/img/");
		System.out.println(realPath);
		//本地路径，项目运行后删除
		//String basePath="E:\\WorkJava\\Bilibili\\CBBS\\Anime\\src\\main\\webapp\\WEB-INF\\img\\";
		//创建文件对象
		File file1 = new File(realPath);
		//判断文件是否存在，如果不存在创建
		if (!file1.exists()) {
			file1.mkdirs();
		}
		//File file2 = new File(basePath);
		//if(!file2.exists()) {
		//	file2.mkdirs();
		//}
		//获取视频文件名称
		String orgName = file.getOriginalFilename();
		//文件io流操作
		try {
			//文件输出流，写入服务器,true:追加写入
			FileOutputStream fos = new FileOutputStream(realPath+orgName,true);
			//写入本地
			//FileOutputStream fos1 = new FileOutputStream(basePath+orgName,true);
			//将文件转换为二进制写入
			fos.write(file.getBytes());
			//fos1.write(file.getBytes());
			//刷新缓冲
			//fos1.flush();
			fos.flush();
			//关闭资源
			//fos1.close();
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

		}
	}
}
